为了简化用户使用SDK的复杂度,DTS实现了SDK容灾机制。这个机制依赖于SDK消费数据时,向DTS中控节点实时汇报消费时间点。本小节简单介绍如何使用DTS提供的SDK容灾机制。

要求

  1. SDK消费代码中,每消费一个message要调用一次ackAsConsumed,向DTS汇报消费时间点。
  2. 同一个订阅通道至少启动2个SDK下游互为主备。

消费架构图

SDK容灾架构

DTS的一个订阅通道只能有一个SDK拉取到增量数据。如果在一个订阅通道中接多个SDK下游,那么只有其中一个订阅SDK能够接收到增量数据。根据这个原理,可以搭建SDK灾备架构。

在上图这个示例架构中,对一个订阅通道中,接了两个SDK消费下游,这两个SDK互为主备,同一个时间内,只有主SDK能订阅并消费到增量数据。当主SDK异常或是出现网络连接异常时,DTS会自动failover漂移到备SDK上,同时使用最后消费的时间点启动备SDK。主SDK每消费一条数据,会向DTS控制系统汇报一个ACK,即向控制系统汇报消费时间点。